home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Mac Format 1995 June
/
MacFormat 25.iso
/
Shareware City
/
Developers
/
OutOfPhase1.1 Source
/
OutOfPhase Folder
/
ASTExpressionList.h
< prev
next >
Wrap
Text File
|
1994-05-08
|
2KB
|
60 lines
/* ASTExpressionList.h */
#ifndef Included_ASTExpressionList_h
#define Included_ASTExpressionList_h
/* ASTExpressionList module depends on */
/* MiscInfo.h */
/* Audit */
/* Debug */
/* Definitions */
/* TrashTracker */
/* Memory */
/* ASTExpression */
/* PcodeObject */
/* CompilerRoot */
#include "PcodeObject.h"
#include "CompilerRoot.h"
struct ASTExprListRec;
typedef struct ASTExprListRec ASTExprListRec;
/* all memory allocated from this module is done with TrashTracker */
/* forwards */
struct TrashTrackRec;
struct ASTExpressionRec;
/* cons an AST expression onto a list */
ASTExprListRec* ASTExprListCons(struct ASTExpressionRec* First, ASTExprListRec* Rest,
struct TrashTrackRec* TrashTracker);
/* type check a list of expressions. this returns eCompileNoError if */
/* everything is ok, and the appropriate type in *ResultingDataType. */
CompileErrors TypeCheckExprList(DataTypes* ResultingDataType,
ASTExprListRec* ExpressionList, long* ErrorLineNumber,
struct TrashTrackRec* TrashTracker);
/* get the first expression */
struct ASTExpressionRec* ExprListGetFirstExpr(ASTExprListRec* ExpressionList);
/* get the tail expression list */
ASTExprListRec* ExprListGetRestList(ASTExprListRec* ExpressionList);
/* install a new first in the list */
void ExprListPutNewFirst(ASTExprListRec* ExpressionList,
struct ASTExpressionRec* NewFirst);
/* generate code for an expression list that is a series of sequential expressions. */
/* returns True if successful, or False if it fails. */
MyBoolean CodeGenExpressionListSequence(struct PcodeRec* FuncCode,
long* StackDepthParam, ASTExprListRec* ExpressionList);
/* generate code for an argument list -- all args stay on the stack. */
/* returns True if successful, or False if it fails. */
MyBoolean CodeGenExpressionListArguments(struct PcodeRec* FuncCode,
long* StackDepthParam, ASTExprListRec* ExpressionList);
#endif